package com.hxkj.service;

import com.github.pagehelper.PageInfo;
import com.hxkj.domain.po.DictType;
import com.platform.common.domain.result.ResultDataStruct;
import com.platform.common.domain.result.ResultMessageStruct;
import com.platform.common.domain.to.PageTo;

/**
 *
 *
 * @author: zzx
 * @version: 1.0
 * @datetime: 2018-05-21 17:59:26
 */
public interface DictTypeService {
    /**
     * 获取一个字典列表  一 级（主类）
     *
     * @param dictType
     */
    //   @Cached(name="dictItemCache", key="#dictItemId", expire = 3600,cacheType = CacheType.REMOTE)
    PageInfo<DictType> getDictTypeList(DictType dictType, PageTo pageParam) throws Exception;

    /**
     * 从缓存中获取数据
     * 获取一个字典数据  一 级（主类）
     *
     * @param dictType
     * @return
     * @throws Exception
     */
    //   @Cached(name="dictItemCache", key="#dictItemId", expire = 3600,cacheType = CacheType.REMOTE)
    ResultDataStruct getDictTypeFromCache(DictType dictType) throws Exception;


    /**
     * 更新用户缓存
     * 修改一个字典列表  一 级（主类）
     *
     * @param dictType
     */
//    @CacheUpdate(name="dictItemCache.", key="#dictItem.dictItemId", value="#dictItem")
    ResultMessageStruct updateDictType(DictType dictType);

    /**
     * 删除用户缓存
     * 删除一个字典列表  一 级（主类）
     *
     * @param dictType
     */
    // @CacheInvalidate(name="dictItemCache.", key="#dictItemId")
    ResultMessageStruct deleteDictType(DictType dictType);

    /**
     * 增加字典
     * 增加一个字典列表  一 级（主类）
     *
     * @param dictType
     */
    ResultMessageStruct saveDictType(DictType dictType);

    /**
     * 禁用一个 一级 字典
     *
     * @param dictType
     */
    // @CacheInvalidate(name="dictItemCache.", key="#dictItemId")
    ResultMessageStruct modifyDictType(DictType dictType);


    /**
     * 查询单条一级分类记录
     * @param dictType
     * @return
     */
    ResultDataStruct<DictType> getDictType(DictType dictType);
}
